package br.edu.universo.si.projeto2.infojob.client.componentes.comboboxes;

import java.util.HashMap;
import br.edu.universo.si.projeto2.infojob.client.util.Util;
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.google.gwt.user.client.ui.ListBox;


/**
 * COMPONENTE - Listbox que mostra os estados civis de uma pessoa
 * Este componente foi consertado. Por favor, nao mexa nele.
 * @author Andrey A. de Oliveira e Anizair Lopes
 * @since 13/09/2008
 */

public class EstadosCivisListBox extends ListBox
{
	private Integer indice = 0;
	private Boolean callback = false;
	public EstadosCivisListBox()
	{
		super(false);
		this.setWidth("200px");
		this.addItem("", "");

		AsyncCallback<HashMap<Integer, String>> callback = new AsyncCallback<HashMap<Integer, String>>() {
	
			public void onSuccess(HashMap<Integer, String> result)
			{
				for (int x = 1; x <= result.size(); x++)
				{
					EstadosCivisListBox.this.addItem(result.get(x), Integer.toString(x));
				}
				EstadosCivisListBox.this.setSelectedIndex(EstadosCivisListBox.this.getIndice());
				EstadosCivisListBox.this.setCallback(true);
			}

			public void onFailure(Throwable caught) { }
		};

		Util.getService().getEstadosCivis(callback); 
	}
	public void setIndice(Integer indice) {
		this.indice = indice;
	}
	public Integer getIndice() {
		return indice;
	}
	public void setCallback(Boolean callback) {
		this.callback = callback;
	}
	public Boolean getCallback() {
		return callback;
	} 
	public void atauliza(){
		if (callback) {
			EstadosCivisListBox.this.setSelectedIndex(EstadosCivisListBox.this.getIndice());
		}
	}
}